Attackers may seek to execute arbitrary code on a computing device, leveraging vulnerabilities in software to execute code of their choosing. Additionally, users may unintentionally cause software to exhibit erratic behavior that causes the software to crash or otherwise harm the users' system. In either case, problems may arise when software deviates from intended control flows. Accordingly, users may seek methods by which to force software to follow intended control flows.
Traditional methods for enforcing intended control flows typically rely on static analysis of the assembly code that makes up software. Unfortunately, such static analysis may not accurately represent how the software behaves when provided with various inputs. For example, enforcement schemes that utilize static software analysis may permit functions to behave in a manner that certain end users may never encounter during normal use of the software. Moreover, individuals or organizations may seek solutions that are faster and require less processing overhead than enforcement solutions that incorporate static analysis. The instant disclosure therefore identifies and addresses a need for additional and improved systems and methods for enforcing secure software execution.